// 权限
import router from './router'
import { userUserStore } from './store/user'
import { message } from 'ant-design-vue'
import NProgress from 'nprogress'
import { profile } from '@/api/user'
// NProgress.start()
// NProgress.done()
// 路由守卫进入前
router.beforeEach((to, from, next) => {
  NProgress.start()
  // console.log(to, from)
  const useUser = userUserStore()
  const { token } = useUser

  if (token) {
    //1. 存在token
    if (to.path === '/login') {
      //  提示已经处于登录状态，是否要退出
      message.warning('请退出后重新登录')
      next(from.path)
    } else {
      // 判断角色信息是否存在，不存在尝试发送请求
      profile()
        .then((res) => {
          console.log(res)
          if (!res.roles || res.roles.length === 0 || !res.status) {
            //  无操作权限（需后期完成）
            message.confim('没有权限操作内容')
          }
          // 更新到pinia的store中
          useUser.updateInfo(res)
        })
        .catch((e) => {
          console.log(e)
        })
      next()
    }
  } else {
    //2. 没token  判断是否去除过login的页面    /login - from  to - home
    if (to.path !== '/login') {
      //  /home !== /login
      message.warning('暂无权限,请先登录')
      next('/login')
    } else {
      next()
    }
  }
  // 检查token是否存在（login页面除外） 不存在则说明未登录-login页面

  // 若token存在则登录放行

  // ...
  // 返回 false 以取消导航
})

// 进入后
router.afterEach(() => {
  NProgress.done()
})
